package com.cruise.game.model.vo.game;

import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 游戏服务VO
 * 
 * @author cruise
 * @date 2025-02-28
 */
@Data
public class GameServiceVO implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 服务ID
     */
    private Long id;

    /**
     * 服务名称
     */
    private String name;

    /**
     * 价格
     */
    private BigDecimal price;

    /**
     * 服务描述
     */
    private String description;

    /**
     * 服务图片URL
     */
    private String imageUrl;

    /**
     * 是否热门
     */
    private Boolean isHot;

    /**
     * 是否推荐
     */
    private Boolean isRecommended;

    /**
     * 状态
     */
    private String status;

    /**
     * 游戏分类
     */
    private CategoryInfo category;

    /**
     * 代理信息
     */
    private AgentInfo agent;

    /**
     * 创建时间
     */
    private LocalDateTime createdAt;

    /**
     * 分类信息
     */
    @Data
    public static class CategoryInfo implements Serializable {

        private static final long serialVersionUID = 1L;

        /**
         * 分类ID
         */
        private Long id;

        /**
         * 分类名称
         */
        private String name;
    }

    /**
     * 代理信息
     */
    @Data
    public static class AgentInfo implements Serializable {

        private static final long serialVersionUID = 1L;

        /**
         * 代理ID
         */
        private Long id;

        /**
         * 代理昵称
         */
        private String nickname;

        /**
         * 评分
         */
        private BigDecimal rating;

        /**
         * 已完成订单数
         */
        private Integer ordersCompleted;
    }
}
